iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

一個月的後端學習之旅系列 第 10

【DAY10】認識函數、return

  • 分享至 

  • xImage
  •  

數學函數

JavaScript 的函數類似於數學的函數。從數學課中回憶,一個函數是類似這樣的式子 -> f(x) = 3x + 6

f 這個字母是此函數的名稱,x 是此函數的參數 parameter,3x + 6是函數的輸出值(主體),而且函數應該只返回一個值(一對一、多對一可以,但一對多不行)

Graphing Calculator

在 f(x) = 3x + 6 這個函數中,x 被稱作是 parameter。但是當使用函數時, f(5)的數字 5 被稱為是 argument

函式 Function

除了 JavaScript 內建的 function 之外,也可以定義或客製化自己的 function

內建的 function : alert(), prompt(), ...

Function 是由一連串的程式碼組成,用來完成任務或是計算值

宣告 declare 一個 Function 的語法

// declaration, definition
function f() {
  console.log("這是我的第一個function");
}

// 執行function exection, invoke a function, function invocation
// 調用函式 call a function
f();

一對一parameter

function sayHi(myParameter1) {
  console.log("你好,我的名子是" + myParameter1);
}

sayHi("Phoebe");

給多個參數

function sayHi(myParameter1, myParameter2) {
  console.log("你好,我的名子是" + myParameter1);
  console.log("我今年" + myParameter2 + "歲");
}

sayHi("Phoebe", 23);

return

Function 中,若沒有 return 語句的話,function 將返回undefined (JavaScript 的 function 默認的 return value)

// circle function的參數為一個半徑,功能為算出圓面積

// 第一種寫法(我自己試打)
function circle(r) {
  return 3.14 * r * r;
}

console.log(circle(10) + circle(5));  // -> 392.5

// 第二種寫法(教學)
function circle(r) {
  return 3.14 * r * r;
}

let result = circle(10) + circle(5);
console.log(result);

// 第三種寫法(教學)
function circle(r) {
  console.log(3.14 * r * r);
}

let area1 = circle(10);
let area2 = circle(5);
console.log(area1 + area2);

異常寫法

// circle function的參數為一個半徑,功能為算出圓面積
function circle(r) {
  console.log(3.14 * r * r);
}

console.log(circle(10));
// 會出現的值
// -> 314        Line3 function裡print circle(10)的數值
// -> undefined  Line6 console.log()裡代出的數值
// 也就是說對console.log()來說circle(10)是一個undefined,因為沒有return值出來
// circle function的參數為一個半徑,功能為算出圓面積
function circle(r) {
    console.log(3.14 * r * r);
}

let result = circle(10) + circle(5);
console.log(result);
// 會出現的值
// -> 314        Line3 function裡print circle(10)的數值
// -> 78.5       Line3 function裡print circle(5)的數值
// -> NaN        Line7 console.log()裡print result
// 也就是說對result來說circle(10)、circle(5)皆是undefined,undefined + undefined = NaN

注意!!任何放在 return 語句底下的程式碼都不會被執行

小試身手

// 攝氏溫度轉換成華氏溫度
// Celsius to Fahrenheit
// °F = °C * 1.8 + 32

function converter(c) {
  return c * 1.8 + 32;
}

let input = Number(prompt("請輸入攝氏溫度:"));

let result = converter(input);
alert("換算後的溫度為:" + result + "°F");

下一篇文章來學習array陣列、方法、reference Data Type 比較。


上一篇
【DAY9】if statement、Truthy and Falsy、補充
下一篇
【DAY11】Array陣列、Reference Data Type 比較
系列文
一個月的後端學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言